package br.com.cast.produto.pagina;

import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.spring.injection.annot.SpringBean;

import br.com.cast.excecoes.ProdutoJaCadastrado;
import br.com.cast.modelo.Produto;
import br.com.cast.produto.HomePage;
import br.com.cast.servico.IProdutoServico;
import br.com.cast.util.ComponentUtil;

public class FormProduto extends Form {

	@SpringBean
	private IProdutoServico produtoServico;

	public FormProduto(String id) {
		super(id, new CompoundPropertyModel<Produto>(new Produto()));

		montarFormulario();
	}

	protected void montarFormulario() {

		add(new TextField<>("descricao"));
		add(new TextField<>("valor"));

	}

	@Override
	protected void onSubmit() {
		 Produto p = (Produto) getModelObject(); 
		 
		 try {
			 
			 produtoServico.salvar(p);
			 HomePage homepage = redirecionaListar();
			 homepage.success("Produto cadastrado com sucesso");
			
		} catch (ProdutoJaCadastrado e) {
		       error(e.getMessage());
		}
		

	}
	
	private HomePage redirecionaListar() {
		
		HomePage template = ComponentUtil.getTemplate(this);		
		template.replace(new ListarProduto(HomePage.CONTENT_ID));		
		
		return template;
	}

}
